﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Dominio
{
    public class Proveedor: Persona
    {
        #region atributos

        private string mRUT;

        #endregion

        #region propiedades

        public string RUT 
        {
            get { return mRUT; }
            set { mRUT = value; }
        }

        #endregion

        #region constructor

        public Proveedor()
        {
            RUT = "0";
        }

        #endregion

        #region metodos

        public override string ToString()
        {
            return Nombre;
        }

        public override bool Equals(object obj)
        {
            return OID == ((Proveedor)obj).OID;
        }

        public override int GetHashCode()
        {
            return base.GetHashCode();
        }

        public List<FacturaProveedor> listarFactProvPorImporte(double unI)
        {
            return null;
        }

        public void obtenerSaldoAFecha(DateTime unaF)
        {             
        }

        public List<Documento> estadoDeCuentas(DateTime desde, DateTime hasta)
        {
            return null;
        }

        #endregion

//    'permite listar todas las facturas del Proveedor si estas poseen un saldo mayor al importe especificado
//    Public Function listarFactProvPorImporte(ByVal unI As Double) As ArrayList
//        Dim unaFP As New FacturaProveedor
//        Dim lNueva As New ArrayList
//        For Each unD As Documento In Me.documentos
//            If unD.GetType.Equals(unaFP.GetType) Then
//                If CType(unD, Factura).saldo >= unI Then
//                    lNueva.Add(unD)
//                End If
//            End If
//        Next
//        Return lNueva
//    End Function
//    'permite obtener el saldo del Proveedor en una fecha dada
//    Public Sub obtenerSaldoAFecha(ByVal unaF As Date)
//        Dim unaFP As New FacturaProveedor
//        Me.saldo = 0
//        For Each unD As Documento In Me.documentos
//            If unaF > unD.fecha Then
//                If unD.GetType.Equals(unaFP.GetType) Then
//                    Me.saldo = Me.saldo - unD.monto
//                Else
//                    Me.saldo = Me.saldo + unD.monto
//                End If
//            End If
//        Next
//    End Sub
//    'hace un listado de todas los documentos que afectan al proveedor entre dos fechas
//    Public Function estadoDeCuentas(ByVal desde As Date, ByVal hasta As Date) As ArrayList
//        Dim lNueva As New ArrayList
//        Me.obtenerSaldoAFecha(desde)
//        For Each unD As Documento In Me.documentos
//            If unD.fecha >= desde And unD.fecha <= hasta Then
//                lNueva.Add(unD)
//            End If
//        Next
//        Return lNueva
//    End Function
//#End Region
    }
}
